package com.doubi.model.sys;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.List;

import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 后台用户表
 *
 * @author MrDoubi123
 * @since 2019-10-20
 */
@Data
@Accessors(chain = true)
@TableName("t_sys_user")
@EqualsAndHashCode(callSuper = true)
public class TSysUser extends Model<TSysUser> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键oid
     */
    @TableId(value = "oid", type = IdType.UUID)

    private String oid;


    @Override
    protected Serializable pkVal() {
        return this.oid;
    }

    /**
     * 部门id
     */
    @TableField("dept_oid")
    private String deptOid;


    @TableField("user_type")
    private String userType;


    /**
     * 登陆账号
     */

    private String account;


    /**
     * 登陆密码
     */

    private String password;


    /**
     * 盐
     */

    private String salt;


    /**
     * token，来判断是否是第一次登陆
     */

    private String token;


    /**
     * 更新token时间
     */
    @TableField("update_token_time")

    private Date updateTokenTime;


    @TableField("android_token")

    private String androidToken;


    /**
     * 更新安卓token时间
     */
    @TableField("update_android_token_time")

    private Date updateAndroidTokenTime;


    @TableField("ios_token")

    private String iosToken;


    /**
     * 更新苹果token时间
     */
    @TableField("update_ios_token_time")

    private Date updateIosTokenTime;


    /**
     * 用户昵称
     */

    private String name;


    /**
     * 用户头像
     */

    private String head;


    /**
     * 性别
     */

    private Integer sex;


    /**
     * 手机号
     */

    private String phone;


    /**
     * 邮箱
     */

    private String email;


    /**
     * 创建时间
     */
    @TableField("create_time")

    private Date createTime;


    /**
     * 更新时间
     */
    @TableField("update_time")

    private Date updateTime;

    @TableField("birthday")
    private Date birthday;


    /**
     * 登录失败次数 : 记录用户登录失败的次数，当达到阀值时，禁止登录，登录成功后重新设置为0
     */
    @TableField("fail_num")

    private Integer failNum;


    /**
     * 锁定状态（Y锁定/N未锁定）
     */
    @TableField("lock_status")

    private String lockStatus;


    /**
     * 启禁用状态（Y启用/N禁用）
     */
    @TableField("is_able")

    private String isAble;


    /**
     * 删除状态（0已删除/1未删除）
     */
    @TableField("is_delete")
    @TableLogic

    private Integer isDelete;


    /**
     * 锁定时间
     */
    @TableField("lock_date")

    private Date lockDate;


    /**
     * 创建人的oid
     */
    @TableField("create_user_oid")

    private String createUserOid;


    /**
     * 省code
     */

    private String province;


    /**
     * 市code
     */

    private String city;


    /**
     * 区code
     */

    private String area;

    //不是表字段
    @TableField(exist = false)
    private List<TSysPermission> myPermission;


    @TableField(exist = false)
    private String deptName;

    private String weixinid;
    private String qqid;
    private String weiboid;

    @TableField("last_login_time")

    private Date lastLoginTime;




    @TableField("balance")

    private BigDecimal balance;
}